#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>

typedef struct STU
{
	int iId;
	char caName[32];
	float fScore;
}STU;

int main(int argc, char *argv[])
{	
	if (2 != argc)
	{
		exit(EXIT_FAILURE);
	}

	FILE *file = fopen(argv[1], "rb");

	STU stu[5];
	int ret = fread(stu, sizeof(STU), 5, file);
	int i = 0;
	for (; i<5; i++)
	{
		printf("id=%d,name=%s,score=%.1f\n"
			   , stu[i].iId, stu[i].caName, stu[i].fScore);
	}


#if 0
	STU stu;
	int ret = 0;
	while (1)
	{
		//从file文件中读取一个sizeof(stu)字节大小的数据
		//放入&stu指向的空间中
		//ret为0: 1，到达文件末尾，没有数据可读
		//        2，数据读取过程中发生了错误
		ret = fread(&stu, sizeof(STU), 1, file);
		printf("ret = %d\n", ret);
		//系统内部有一个变量，
		//若读数据到达文件末尾没有读到数据的时候，
		//会将该变量设置为1，
		//feof运行时，对该变量的值进行判断
		//若为1则表示达到文件末尾，返回一个非0值
		if (feof(file))//判断是否达到文件末尾
		{
			break;
		}
		printf("id=%d,name=%s,score=%.1f\n"
			   , stu.iId, stu.caName, stu.fScore);
	}
#endif
	fclose(file);


	return 0;
}
